The present invention relates to numerical control systems for controlling machine tools and the like, and in particular, to a numerical control system useful for cutting an arbitrary surface with irregular boundaries.
Numerical control systems are computing devices adapted for the real-time controlled machine tools. The numerical controller typically receives a set of coded instructions forming a part program. The instructions of the part program include generally: "positioning instructions" which describe a sequence of tool movements to be performed to create a finished part, and "set-up instructions" which control accessories, such as tool-changers, or which designate certain machine set-up parameters. In the case of a numerical controller operating a vertical milling machine, the "set-up" instructions may specify, for example, the type and radius of the milling tool, the desired rate of feed of the tool through the material being machined, the spindle speed at which the tool is to rotate and other general parameters of the machining operation.
The numerical controller converts the positioning instructions of the part program to electrical signals which control servo or stepper motors attached to the machine tool to move the tool with respect to the workpiece. For complex parts involving many discrete movements of the tool, these positioning instructions comprise a majority of the instructions of the part program.
Normally the machining of a surface will be accomplished in at least two passes: first a rough cut in which material is removed at the maximum feasible rate, and second a finish cut in which only a relatively thin finish allowance of material is removed to reduce vibration and flexure providing a smooth finish and accurate final dimension.
For the machining of a surface, such as may comprise part of a metal stamping die, plastic mold or foundry patterns, for example, a mathematical description of the surface will first be generated by a designer using computer aided design ("CAD") techniques, typically stand-alone programs running on a high speed work station. The surface description, most simply, is in the form of a series of coordinates for points spaced at regular intervals over a grid, the coordinates providing position information for each of three Cartesian axes designated "x", "y", and "z". Such a description is termed a "wire frame" model as the connection of each of the points to its neighbors produces a surface having the appearance of a frame formed of wire. Alternatively the surface description may be made at irregularly spaced points along the plane.
A description of the path of the tool during the cutting of the workpiece is required in addition to the description of the surface to be cut. For simple surfaces, for example, a rectangular pocket having a uniform depth, the tool path may be a simple rectangular spiral of decreasing size. Such a spiral provides even tool loading, insures that the entire surface is cut and efficiently uses the machine tool by minimizing time occupied by moving without cutting.
For more complex surfaces and particularly those having irregular boundaries that may include straight and curved line segments or "islands" of uncut material, the most efficient cutting path is not well defined. Simple geometric cutting paths may require substantial movement of the tool through previously cut paths to complete the removal of material. For surfaces where the depth of the material to be cut varies significantly over the surface, and must be removed in several passes, similar problems of inefficient tool motion may arise. This is true even if the surface may be bounded by a simple rectangle.
The speed and feed of the tool, dependant generally on the amount and type of material being removed and the condition of the cutter will also influence the optimal cutting path.
Currently, tool paths may be designated during the design process on a CAD/CAM machine by the CAD or CAM operator. Alternatively, some numerical control devices generate their own tool paths from the surface description based on simple space filling algorithms. Generally, both these approaches produce substantially less than the optimal tool path. Further, the automatically generated tool paths are typically successful only for a limited range of machine shapes.